Balancing network traffic loads is critical for avoiding network congestion, achieving high bandwidth utilization, and ensuring quality of service (“QoS”). However, near-optimal load balancing is extremely difficult to achieve when the traffic changes dynamically. Currently, there is no satisfactory solution for this problem.
Two of the most common types of routing are static routing and dynamic routing. The aim of static routing is to find a trade-off among a set of traffic matrices and use a fixed routing configuration to deal with dynamic traffic. However, the performance of static routing is often far below optimal performance when traffic changes substantially. The key limitation to static routing is that a fixed routing that achieves optimal load balancing under all possible traffic conditions is not technically possible.
Dynamic routing performs a complete routing re-computation and reconfiguration to react to traffic changes. Theoretical optimality requires extremely high computational complexity and detailed configurations that cannot meet near-real-time demands. What is needed is a routing scheme that offers the benefits of dynamic routing while meeting near-real-time demands.